﻿/*
创建人：zhangrj
日期：2022-11-21
描述：槽液化验设备检测项维护页面js
*/
var page = {
    url: getRootPath() + "/Ashx/BathResMonitorMaintHandler.ashx", //后台处理url,
    commonUrl:getRootPath() + "/Ashx/CommonHandler.ashx",//通用UL
    //设备分页参数
    pageTotal: 0, //分页总数（主列表）
    pageSize: 10, //每页条数（主列表）
    pageNumber: 1, //页码（主列表）
    pageTotal_1: 0, //分页总数（详细列表）
    pageSize_1: 10, //每页条数（详细列表）
    pageNumber_1: 1, //页码（详细列表）
    BathresmonitorinfoId: "", //待编辑的数据ID
    bathID: "", //存储查询详细ID
    init: function () {
        page.bind();
        page.initPageData();
    },
    //绑定事件
    bind: function () {
        customizedEasyuiPagination('pp'); //定制化分页
        customizedEasyuiPagination('pp1'); //定制化分页
        //主列表加载
        $("#gdBathResMonitorInfo").datagrid({
            onLoadSuccess: function (data) {
                $('#pp').pagination('refresh', {	// 改变选项，并刷新分页栏信息
                    total: page.pageTotal,
                    pageSize: page.pageSize,
                    pageNumber: page.pageNumber
                });
                customizedEasyuiPagination('pp'); //定制化分页
            },
            columns: [[
                 { field: 'ck', title: '选择', checkbox: true },
                 { field: 'RESWORKCENTERCODE', title: '工作中心', width: 150 },
                 { field: 'RESSOURCENAME', title: '设备编号', width: 150 },
                 { field: 'RESSOURCEDESC', title: '设备名称', width: 120 },
                 { field: 'CHECKCYCLENAME', title: '检验周期', width: 60 },
                 { field: 'ISENABLENAME', title: '是否启用', width: 60 },
                 { field: 'STATUS', title: '状态', width: 60 },
                 { field: 'EXPIREDATE', title: '到期日期', width: 80,
                     formatter: function (value, row, index) {
                         if (!isNullOrWhiteSpaceStr(value)) {
                             return dayjs(value).format('YYYY-MM-DD');
                         }
                     }
                 },
                 { field: 'DESCRIPTION', title: '描述', width: 150 },
                 { field: 'LASTCHANGEEMPNAME', title: '修改人', width: 60 },
                 { field: 'LASTCHANGEEMPDATE', title: '修改日期', width: 80,
                     formatter: function (value, row, index) {
                         if (!isNullOrWhiteSpaceStr(value)) {
                             return dayjs(value).format('YYYY-MM-DD');
                         }
                     }
                 },
                 { field: 'CREATEEMPNAME', title: '创建人', width: 60 },
                 { field: 'CREATEDATE', title: '创建日期', width: 80,
                     formatter: function (value, row, index) {
                         if (!isNullOrWhiteSpaceStr(value)) {
                             return dayjs(value).format('YYYY-MM-DD');
                         }
                     }
                 },
                 { field: 'BATHRESMONITORINFOID', hidden: true }
                ]],
            onSelect: function (rowIndex, rowData) {
                page.bathID = rowData.BATHRESMONITORINFOID;
                page.bindDetail();
            },
            onUnselect: function (rowIndex, rowData) {
                page.bathID = "";
                page.clearPage(false, false, true, true, true);
            },
            onSelectAll: function () {
                page.clearPage(false, false, true, true, true);
            },
            onUnselectAll: function () {
                page.clearPage(false, false, true, true, true);
            }
        });
        //详细列表加载
        $("#gdBathResMonitorDetailInfo").datagrid({
            onLoadSuccess: function (data) {
                $('#pp1').pagination('refresh', {	// 改变选项，并刷新分页栏信息
                    total: page.pageTotal_1,
                    pageSize: page.pageSize_1,
                    pageNumber: page.pageNumber_1
                });
                customizedEasyuiPagination('pp1'); //定制化分页
            },
            columns: [[
                 { field: 'BATHRESMONITORCHECKNO', title: '送检单号', width: 140 },
                 { field: 'SENDCHECKDATE', title: '送检日期', width: 80,
                     formatter: function (value, row, index) {
                         if (!isNullOrWhiteSpaceStr(value)) {
                             return dayjs(value).format('YYYY-MM-DD');
                         }
                     }
                 },
                 { field: 'STATUS', title: '状态', width: 70,
                     formatter: function (value, row, index) {
                         if (value === "0") {
                             return "送检中";
                         }
                         else if (value === "5") {
                             return "送检完成";
                         } else {
                             return "未知状态";
                         }
                     }
                 },
                 { field: 'SENDCHECKEMPNAME', title: '送检人', width: 60 },
                 { field: 'CHECKDOCPATH', title: '送检报告', width: 150 },
                 { field: 'CREATEEMPNAME', title: '创建人', width: 60 },
                 { field: 'CREATEDATE', title: '创建日期', width: 80,
                     formatter: function (value, row, index) {
                         if (!isNullOrWhiteSpaceStr(value)) {
                             return dayjs(value).format('YYYY-MM-DD');
                         }
                     }
                 },
                 { field: 'LASTCHANGEEMPNAME', title: '修改人', width: 60 },
                 { field: 'LASTCHANGEDATE', title: '修改日期', width: 80,
                     formatter: function (value, row, index) {
                         if (!isNullOrWhiteSpaceStr(value)) {
                             return dayjs(value).format('YYYY-MM-DD');
                         }
                     }
                 }
                ]]
        });
        //主列表分页事件
        $('#pp').pagination({
            onSelectPage: function (pageNumber, pageSize) {
                customizedEasyuiPagination('pp'); //定制化分页
                page.clearPage(false, true, true, true, true);
                page.pageSize = pageSize; page.pageNumber = pageNumber;
                page.search();
            }
        });
        //详细列表分页事件
        $('#pp1').pagination({
            onSelectPage: function (pageNumber, pageSize) {
                customizedEasyuiPagination('pp1'); //定制化分页
                page.clearPage(false, false, true, true, true);
                page.pageSize_1 = pageSize; page.pageNumber_1 = pageNumber;
                page.bindDetail();
            }
        });
        $(document).ready(function () {
            //绑定分页go按钮
            $('#pageGo').on("click", function () {
                page.clearPage(false, true, true, true, true);
                var pageNumber = $(this).parents('tr').find('.pagination-num').val();
                page.pageNumber = pageNumber;
                page.search();
            });
            //绑定分页go1按钮
            $('#pageGo1').on("click", function () {
                page.clearPage(false, false, true, true, true);
                page.pageNumber_1 = $(this).parents('tr').find('.pagination-num').val();
                page.bindDetail();
            });
        });
        //查询信息
        $("#btnSearch").on("click", function () {
            page.clearPage(false, true, true, true, true);
            page.pageNumber = 1;
            page.search();
        });
        //重置查询
        $("#btnReset").on("click", function () {
            page.clearPage(true, true, true, true, true);
        });
        //新建
        $("#btnAdd").on("click", function () {
            page.clearPage(false, false, true, true, true);
            page.openDialog(1);
        });
        //编辑
        $("#btnEdit").on("click", function () {
            page.clearPage(false, false, true, true, true);
            page.openDialog(2);
        });
        //删除
        $("#btnDele").on("click", function () {
            if (confirm("是否删除")) {
                page.clearPage(false, false, true, true, true);
                page.updateStatus(1);
            }
        });
        //启用/暂停
        $("#btnEnableOrStop").on("click", function () {
            page.clearPage(false, false, true, true, true);
            page.updateStatus(2);
        });
        //弹窗保存
        $("#btnSave").on("click", function () {
            page.save();
        });
        //弹窗关闭
        $("#btnClose").on("click", function () {
            $("#dg").dialog("close");
        });
    },
    //初始化页面数据
    initPageData: function () {
        page.post(page.commonUrl, { action: "getFactory" }, true, function (res) {
            //绑定工厂下拉框
            $("#selFactory").combobox({
                valueField: 'FACTORYID',
                textField: 'FACTORYNAME',
                panelHeight: 200,
                data: res, //下拉数据
                value: res[0].FACTORYID
            });
        });
    },
    //查询
    search: function () {
        var formData = {
            action: "GetBathResMonitorList",
            pageSize: page.pageSize,
            pageIndex: page.pageNumber,
            workcentercode: $("#txtWorkCenterCode").textbox("getValue"),
            resource: $("#txtResource").textbox("getValue"),
            status: $("#selStatus").combobox("getValue"),
            isEnable: $("#selEnable").combobox("getValue"),
            factory: $("#selFactory").combobox("getValue")
        };
        page.post(page.url, formData, true, function (res) {
            if (!res.Result) {
                displayMessage(res.Message, res.Result);
                return;
            }
            page.pageTotal = res.RowCount;
            $("#gdBathResMonitorInfo").datagrid('loadData', { total: res.RowCount, rows: res.DBTable });
        });
    },
    //加载详细列表
    bindDetail: function () {
        var formData = {
            action: "GetBathResMonitorCheckListByMainID",
            bathID: page.bathID,
            pageSize: page.pageSize_1,
            pageIndex: page.pageNumber_1
        };
        page.post(page.url, formData, true, function (res) {
            if (!res.Result) {
                displayMessage(res.Message, res.Result);
                return;
            }
            page.pageTotal_1 = res.RowCount;
            $("#gdBathResMonitorDetailInfo").datagrid('loadData', { total: res.RowCount, rows: res.DBTable });
        });
    },
    //打开弹窗(1:新增，2编辑)
    openDialog: function (type) {
        page.BathresmonitorinfoId = "";
        var selected = $("#gdBathResMonitorInfo").datagrid("getChecked");
        if (type === 2) {  //如果是编辑，则绑定数据
            if (selected.length > 1 || selected.length === 0) {
                displayMessage("请选择一条数据编辑", false);
                return false;
            }
            page.BathresmonitorinfoId = selected[0].BATHRESMONITORINFOID;
            $("#Checkcycle").numberbox("setValue", selected[0].CHECKCYCLE); //周期
            $("#Expiredate").datebox("setValue", selected[0].EXPIREDATE); //到期日期
            $("#Description").textbox("setValue", selected[0].DESCRIPTION); //描述
            $("#Resworkcentercode").combobox({ editable: false });
            $("#Resworkcentercode").combobox("setValue", selected[0].RESWORKCENTERCODE);
            $("#ResourceId").combobox({ editable: false });
            $("#ResourceId").combobox("setValue", selected[0].RESSOURCEDESC);
            page.dialogs();
            return;
        }

        var postData = {
            action: "GetWindowInitData"
        }
        page.post(page.url, postData, true, function (res) {
            if (!res.Result) {
                displayMessage(res.Message, res.Result);
                return;
            }
            //绑定工作中心
            $("#Resworkcentercode").combobox({
                valueField: 'WORKCENTERCODE',
                textField: 'WORKCENTERCODE',
                data: res.DBDataSet.dtworkcentercode, //下拉数据
                filter: function (q, row) { //可模糊搜索
                    var opts = $(this).combobox('options');
                    return row[opts.textField].indexOf(q) > -1;
                },
                onSelect: function (record) {
                    page.bindResourceList(record.WORKCENTERCODE); //加载设备(工作中心，默认值)
                }
            });
            page.dialogs();
        });
    },
    dialogs: function () {
        $("#dg").dialog({
            onClose: function () { //关闭事件
                $("#mainDiv").find(".easyui-linkbutton").each(function () {
                    $(this).linkbutton('enable');
                });
            }
        });
        $("#mainDiv").find(".easyui-linkbutton").each(function () {
            $(this).linkbutton('disable');
        });
    },
    //动态加载设备()
    bindResourceList: function (workCenterCode) {
        page.post(page.url, { action: "GetResourceByCode", workCenterCode: workCenterCode }, false, function (res) {
            //绑定设备
            $("#ResourceId").combobox({
                valueField: 'RESOURCEID',
                textField: 'DESCRIPTION',
                data: res.DBTable, //下拉数据
                filter: function (q, row) { //可模糊搜索
                    var opts = $(this).combobox('options');
                    return row[opts.textField].indexOf(q) > -1;
                }
            });
        });
    },
    //保存（弹窗）
    save: function () {
        var isValid = $("#ff").form('validate');
        if (!isValid) {
            displayMessage("请填写必填项", false);
            return false;
        }
        var formData = $("#ff").serializeArray();
        var datas = {
            action: "SaveBathResMonitorData",
            Bathresmonitorinfoid: page.BathresmonitorinfoId,
            ResourceDesc: $("#ResourceId").combobox("getText")
        }
        $.each(formData, function () {
            datas[this.name] = this.value;
        });
        page.post(page.url, datas, true, function (res) {
            if (res.Result) {
                $("#dg").dialog("close");
                page.search();
            }
            displayMessage(res.Message, res.Result);
        });
    },
    //更新状态
    updateStatus: function (type) {
        var selected = $("#gdBathResMonitorInfo").datagrid("getChecked");
        if (selected.length === 0) {
            displayMessage("请选择数据", false);
            return false;
        }
        var datas = {
            action: "UpdateBathResMonitorStatus",
            paramDt: JSON.stringify(selected),
            operaType: type
        }
        page.post(page.url, datas, true, function (res) {
            if (res.Result) {
                page.search();
            }
            displayMessage(res.Message, res.Result);
        });
    },
    //清除页面（查询区域，列表区域，详情区域，弹窗，是否清空消息）
    clearPage: function (query, list, detaile, dialog, msg) {
        if (query) {
            $("#txtWorkCenterCode").textbox("setValue", ""); //工作中心
            $("#txtResource").textbox("setValue", ""); //设备
            $("#selStatus").combobox("setValue", "1"); //状态
            $("#selEnable").combobox("setValue", "1"); //是否启用
        }
        if (list) {
            clearEasyuiDataGrid("gdBathResMonitorInfo"); //清空列表
        }
        if (detaile) {
            clearEasyuiDataGrid("gdBathResMonitorDetailInfo"); //清空列表
            page.pageNumber_1 = 1;
        }
        if (dialog) {
            $("#Resworkcentercode").combobox("setValue", ""); //工作中心
            $("#ResourceId").combobox("setValue", ""); //设备
            $("#Checkcycle").numberbox("setValue", ""); //周期
            $("#Expiredate").datebox("setValue", ""); //到期日期
            $("#Description").textbox("setValue", ""); //描述
        }
        if (msg) {
            clearMessage();
        }
    },
    //post数据（路径，参数，是否异步，成功返回方法）
    post: function (url, param, async, callback) {
        $.ajax({
            type: "Post",
            url: url,
            data: param,
            cashe: false,
            async: async,
            dataType: "json",
            beforeSend: function () {
                $.messager.progress({ text: '', msg: '处理中...' });
            },
            success: function (data) {
                $.messager.progress('close');
                callback(data);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                $.messager.progress('close');
                displayMessage(XMLHttpRequest.responseText, false);
                $("body").find(".easyui-linkbutton").each(function () {
                    $(this).linkbutton('enable');
                });
            }
        });
    }
}
$(document).ready(function () {
    page.init();
});